[BLKFRONT] Only attempt to recover a device on resume if it was connected when
authorIan Campbell <ian.campbell@xensource.com>
Thu, 23 Nov 2006 15:06:35 +0000 (15:06 +0000)
committerIan Campbell <ian.campbell@xensource.com>
Thu, 23 Nov 2006 15:06:35 +0000 (15:06 +0000)
we suspended.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c

index 019e1cca254007cc3942039d584397b255db311d..95cff46ff92be0a162f18a0b9c2941dcd283ba14 100644 (file)
@@ -138,10 +138,10 @@ static int blkfront_resume(struct xenbus_device *dev)
 
        DPRINTK("blkfront_resume: %s\n", dev->nodename);
 
-       blkif_free(info, 1);
+       blkif_free(info, info->connected == BLKIF_STATE_CONNECTED);
 
        err = talk_to_backend(dev, info);
-       if (!err)
+       if (info->connected == BLKIF_STATE_SUSPENDED && !err)
                blkif_recover(info);
 
        return err;